package com.spoto.oa.service.impl;

import java.sql.SQLException;
import java.util.List;

import com.spoto.oa.dao.NoticeDAO;
import com.spoto.oa.dao.NoticeTypeDAO;
import com.spoto.oa.dao.impl.NoticeDAOImpl;
import com.spoto.oa.dao.impl.NoticeTypeDAOImpl;
import com.spoto.oa.model.Notice;
import com.spoto.oa.model.NoticeType;
import com.spoto.oa.service.NoticeServ;
/**
 * 
 * @Project: OA
 * @Description: 公告模块的功能服务的具体实现
 * @Author: LinYiSong
 * @Vesion: 
 * @Date: 2010-10-16~2010-10-16
 */
public class NoticeServImpl implements NoticeServ {
	NoticeTypeDAO noticeTypeDAO=new NoticeTypeDAOImpl();
	NoticeDAO noticeDAO=new NoticeDAOImpl();

	/**
	 * 取得公告类型
	 * @return
	 */
	public List<NoticeType> getAllNoticeTypes() {
		return noticeTypeDAO.getAllNoticeType();
	}
	/**
	 * 保存公告
	 * @param notice
	 * @throws SQLException 
	 */
	public void saveNotice(Notice notice) throws SQLException {
		noticeDAO.save(notice);		
	}
	
	/**
	 * 取得所有公告
	 * @return
	 */
	public List<Notice> getAllNotices() {
		return noticeDAO.getAllNotices();
	}
	/**
	 * 根据id删除公告
	 * 
	 */
	public void deleteById(int id){
		try {
			noticeDAO.deleteById(id);
		} catch (SQLException e) {
			System.out.println("删除不成功");
		}		
	}
	/**
	 * 根据id取得对应的公告
	 */
	public Notice getById(int id) {
		try {
			return noticeDAO.getById(id);
		} catch (SQLException e) {
			System.out.println("未取得公告");
		}
		return null;
	}
	
	/**
	 * 更新
	 */
	public void updateNotice(Notice notice) {
			noticeDAO.update(notice);
	}
	/**
	 * 搜索信息如果为空,相当于搜索该类型的所有公告
	 * @param searchType
	 * @return
	 */
	public List<Notice> searchAllByType(String searchType) {
		
		return noticeDAO.getAllByType(searchType);
	}
	
	/**
	 * 根据公告类型和标题,得到所有的公告信息
	 * @param searchType
	 * @param infor
	 * @return
	 */
	public List<Notice> searchAllByTypeAndTitle(String type, String title) {
		return noticeDAO.getAllByTypeAndTitle(type,title);
	}
	/**
	 * 根据id删除公告类型
	 * @param id
	 */
	public void deleteTypeById(int id) {
		noticeTypeDAO.deleteTyepById(id);		
	}
	/**
	 * 根据id取得对应的公告类型
	 * @param id
	 * @return
	 */
	public NoticeType getNoticeTypeById(int id) {
		return noticeTypeDAO.getById(id);
	}
	/**
	 更新公告类型
	 */
	public void updateNoticeType(NoticeType noticeType) {
		noticeTypeDAO.update(noticeType);
	}
	/**
	 * 添加公告类型
	 * @param noticeType
	 */
	public void addNoticeType(NoticeType noticeType) {
		noticeTypeDAO.add(noticeType);
		
	}
	/**
	 * 根据公告名取得公告类型
	 * @return
	 */
	public NoticeType getNoticeTypeByName(String name) {
		return noticeTypeDAO.getByName(name);
	}
	/**
	 * 根据公告类型编号取得公告类型
	 * @param no
	 * @return
	 */
	public NoticeType getNoticeTypeByNo(int no) {
		return noticeTypeDAO.getByNo(no);
	}

}
